package com.tfjybj.itoo.exam.provider.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.tfjybj.itoo.exam.entity.TeacherCourseEntity;
import com.tfjybj.itoo.exam.model.StaffModel;
import com.tfjybj.itoo.exam.model.TeacherCourseModel;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * TeacherCourseDao接口
 * teacherCourse表
 *
 * @author 杨江涛
 * @version 2.0.0
 * @since 2.0.0 2018-11-16 20:35:34
 */
@Repository("teacherCourseDao")
public interface TeacherCourseDao extends BaseMapper<TeacherCourseEntity> {
	
	//region 模板生成：模糊查询
	/**
     * 根据课程_id模糊查询teacherCourse
     *
     * @param courseId  课程_id
     * @return 模糊查询的teacherCourse集合
     * @author 杨江涛
     * @since 2.0.0 2018-11-16 20:35:34
     */
    List<TeacherCourseEntity> queryLikeCourseId(@Param("courseId") String courseId);



    //endregion

    /* **********************************以下为非模板生成的内容********************************* */

    /**
     * 根据课程_id模糊查询teacherCourse
     *
     * @param teacherCourseEntity  教师课程参数
     * @return 教师所对应的所有课程id及课程名称
     * @author 杨江涛
     * @since 2.0.0 2018-11-16 20:35:34
     */
    List<TeacherCourseEntity> selTeacherTable(@Param("teacherCourseEntity") TeacherCourseEntity teacherCourseEntity);

    /**
     * 根据课程_id查询课程名称
     * @param courseId 课程_id
     * @return 课程名称
     * @author 王雪芬
     * @since 2.0.0 2018-11-17 15:38:19
     */
    String queryCourseName(@Param("courseId") String courseId);


    /**
     * 根据teacherId查找该教师所授课程下的所有教师信息
     * @param teacherId 教师id
     * @return 教师id集合
     * @author 杨江涛
     * @since 2.0.0 2018-11-27 20:59:38
     */
    List<TeacherCourseEntity> findTeacherByTeacherId(@Param("teacherId") String teacherId);
    /**
     * 根据courseId查找该课程下所有教师信息
     *
     * @param courseId 课程ID
     * @return  List<StaffModel>
     * @author 杨海云
     * @since 2.0.0 2018-11-27 20:52:40
     */
    List<StaffModel> findTeacherByCourseId(@Param("courseId") String courseId);

    /**
     * 根据查询参数模糊查找该教师及课程信息
     *
     * @param searchInfo 查询参数
     * @author 杨江涛
     * @return List<TeacherCourseEntity>
     * @since 2.0.0 2018-12-7 10:39:04
     */
    List<TeacherCourseModel> findTeacherCourse(@Param("searchInfo") String searchInfo);

    /**
     * 根据登录人id查询课程
     *
     * @param teacherId teacherId
     * @param schoolYear 学年学期
     * @return 登陆人所有的课程
     * @author maying
     * @since 2018-12-12 08:55:58
     */
    List<TeacherCourseModel> loginCourse(@Param("teacherId") String teacherId, @Param("schoolYear") String schoolYear);
    /**
     * 根据学生id查询该学生,该学年课程
     * @param studentId
     * @author  杨海云
     * @since 2.0.0 2019-2-24
     */
    List<TeacherCourseEntity> findByStudentIdAndSchoolYear(@Param("studentId") String studentId, @Param("schoolYear") String schoolYear);

    TeacherCourseEntity queryCourseTeacher(String Operator);

}
